草庐IT

java - 为什么 package-info.java 有用?

全部标签

javascript - 为什么 native 数据类型属性未显示在其相应的原型(prototype)上?

例如,Array数据类型有一个名为pop()的函数,我想它是使用以下方法添加的:Array.prototype.pop=function(){/*...*/};但据我所知,使它不可枚举的唯一方法是做这样的事情:Object.defineProperty(Array.prototype,"pop",{enumerable:false});并非所有浏览器都支持。Array.prototype.doSomething=function(){};vararr=[];console.log(arr);//[doSomething:function]那么为什么doSomething出现在这里,而p

javascript - 当存在全局标志时,为什么 String.match() 不产生预期结果?

这个问题在这里已经有了答案:JavaScriptregularexpressionsandsub-matches(2个答案)关闭9年前。我正在尝试这场比赛'/links/51f5382e7b7993e335000015'.match(/^\/links\/([0-9a-f]{24})$/g)得到:['/links/51f5382e7b7993e335000015']当我期待的时候:['/links/51f5382e7b7993e335000015','51f5382e7b7993e335000015']在删除全局标志之前,我没有运气,我认为这不会影响我的结果!移除全局标志后,'/lin

javascript - JSDoc @type 花括号有什么用?

JSDoc@type标签允许指定变量类型,例如/**@type{Number}*/。然而,我也看到了没有花括号的/**@typeNumber*/,它似乎同样有效。UseJSDoc有一个带花括号和不带花括号的例子,但没有讨论区别。GoogleClosureCompiler文档暗示所有声明都必须有大括号,但没有具体说明如果没有大括号会发生什么情况。大括号重要吗?如果是这样,为什么?如果没有,我应该使用它们吗? 最佳答案 我最好的猜测是大括号是为解析器准备的,因为某些类型规范中可以包含空格。例如。具有字符串键和数字值的对象:{Object

javascript - 当前包装 console.log() 以保留行号的最佳方法是什么?

我以前根据其他SO答案使用过以下内容(没有真正理解prototype.apply.apply的必要性(或工作原理)varmylogger={log:function(){if(window.console){if(window.console.log){Function.prototype.apply.apply(console.log,[console,arguments]);}}},...};虽然这可以防止IE自行崩溃,但它也会使行号报告不可用(它总是报告apply.apply..行。我玩了一会儿,发现以下内容似乎完全符合我的需要,即防止IE自行崩溃并报告mylogger.log(

javascript - 为什么在 Backbone/Require.js 项目的每个 JS 文件中包含 jQuery 和下划线

几乎在每个Backbone/Require.js项目中,您都会看到类似这样的模型和View:define(['jquery','underscore','backbone'],function($,_,Backbone){//Somecodegoeshere,perhapsaBackbonemodelorview});但是,假设您正确设置了Require.jsshim(使用Backboneshim包括诸如deps:["underscore","jquery"]之类的内容),您只需要定义Backbone--将Backbone定义为依赖项也隐含地将jQuery和Underscore定义为依

javascript - 站点地图 node.js 模块中的 cacheTime 是什么?

documentationsitemapnode.js模块没有解释什么是cacheTime。为什么需要生成站点地图?它的用途是什么? 最佳答案 cacheTime是sitemap.js模块在根据给定的url列表重新生成sitemap.xml文件之前等待的时间。即。在第一次请求时,生成一个sitemap.xml文件并将其放入缓存中。后续请求从缓存中读取站点地图,直到它过期并重新生成。我同意它可以更清楚,但源代码已经很清楚了。根据sitemap.js处的源代码,第136行://sitemapcachethis.cacheEnable=f

javascript - 这个数据的格式是什么?它是自定义格式吗?

我将此数据作为ajax响应获取:{"idArray"=("99516","99518","97344","97345","98425");"frame"={"size"={"width"="8";"height"="8";};"origin"={"x"="244";"y"="345";};};},这只是数据的一部分,但它以相同的格式继续。我无权访问生成此数据的文件源。这是已知格式还是自定义格式? 最佳答案 由于人们倾向于对所有事物使用正则表达式,甚至是不能用正则表达式解析的事物(即非正则语言):我已经为这种数据格式编写了一个概念验证

javascript - JSDoc:模块和命名空间之间的关系是什么

我在理解联合中命名空间和模块的用途时遇到了问题。例如,我有一个类Game.utils.Matrix。我想将Game注释为命名空间,将utils注释为模块,将Matrix注释为类:/***@namespaceGame*//***@moduleutils*@memberOfGame*//***Createamatrix*@constructor*/functionMatrix(){}它创建了一个文档,Matrix类的名称路径是Game.utils~Matrix,但是如果我点击Module链接它的名称路径是Module:utils,没有Game命名空间前缀,如果我点击Game链接,它不包含u

javascript - 这个 Javascript 片段有什么作用(jQuery 迁移文件的开始)

我在jQueryMigratev1.1.1中找到了这段代码jQuery.migrateMute===void0&&(jQuery.migrateMute=!0),function(e,t,n){/*anything*/}我真的很想知道两件事:1)===void0是什么意思?2)为什么这些条件后面跟一个逗号?我的测试表明它总是会被执行。这不是我真的需要知道,但我真的很感兴趣,因为我认为我对JS了如指掌。;) 最佳答案 void0将产生undefined,voidX将产生任何X;它更短,并且不能像undefined那样被重新定义。所以=

javascript - 为什么要向 javascript 添加自动分号插入 (ASI)?

由于我现在工作的地方发生了一场“宗教war”,我决定研究一下javascript的ASI特性的历史。但我无法找出为什么以及何时将ASI引入javascript。它似乎一直是一个特性,但是有两种方法可以终止javascript中的语句是否有特定原因?一些消息来源将ASI描述为一种纠错功能,这意味着省略分号是不好的做法。依赖ASI对性能有影响吗?我个人更喜欢分号,因为它使意图更加明确,但个人偏好在任何严肃的讨论中都不是一个可行的论据。 最佳答案 好问题!BrendenEich最初设计了JavaScript编程语言,我认为可以公平地说他会